package com.triones.api.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.api.entity.CountryDictDO;
import com.triones.api.entity.vo.CountryDictVO;
import com.triones.api.entity.vo.CountryImportVo;
import com.triones.api.entity.vo.StateDictVO;

import java.util.List;

/**
 * 国家字典接口
 */
public interface CountryDictService {

    /**
     * 数据导入
     * @param list
     */
    void importData(List<CountryImportVo> list);

    /**
     * 国家字典树
     * @return
     */
    List<CountryDictVO> listTree();

    /**
     * 用国家二字码获取部分国家州/省二字码
     * @param countryCode
     * @return
     */
    List<StateDictVO> stateListByCountryCode(String countryCode,String keyword);

    /**
     * 用国家id获取部分国家州/省二字码
     * @param id
     * @return
     */
    List<StateDictVO> stateListByCountryId(Long id,String keyword);

    /**
     * 国家字典列表（分页）
     * @param params
     * @param pageQuery
     * @return
     */
    TableDataInfo<CountryDictVO> pageList(CountryDictDO params, PageQuery pageQuery);

    /**
     * 查询详情
     * @param id
     * @return
     */
    CountryDictVO getInfo(Long id);

    /**
     * 检查唯一性
     * @param dto
     * @return
     */
    boolean checkUnique(CountryDictDO dto);

    /**
     * 新增
     * @param dto
     */
    void add(CountryDictDO dto);

    /**
     * 修改
     * @param dto
     */
    void edit(CountryDictDO dto);

    /**
     * 删除
     * @param id
     */
    void remove(Long id);
}
